package com.sikaryofficial.knowledge.repository;

import com.sikaryofficial.knowledge.domain.entity.Person;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.neo4j.repository.query.Query;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface PersonRepository extends Neo4jRepository<Person, Long> {
    Person findByName(String name);

    /**
     * 自定义查询语句，使用-查询忽略方向即可，修改如下
     * @param name
     * @return
     */
    List<Person> findByTeammatesName(String name);

    /*** 查询某个节点的所有子节点 * @param pId * @return */
    @Query("Match (p:person) -[*]->(s:person) where id(p)={0} return s")
    List<Person> findChildList(Long pId);

    @Query("Match (p:person {name:{0}}) -[*]->(s:person) return s")
    List<Person> findChildList(String name);

    /**
     * 查询当前节点的父节点 * @param name * @return
     */
    @Query("Match (p:person) -[*]->(s:person {name:{0}}) return p")
    List<Person> findParentList(String name);
}

